Supplementary Calculation Of Numeric Data In A Web Browser

ABSTRACT

An approach is provided in which a user selection is received with the selection being a number data elements with each of the selected data elements being displayed in a Web browser software application. A first set of functions that apply to the selected data elements is identified and the identified first set of functions is applied to the selected data elements. The result is a set of resulting values which are displayed a window that appears on the display screen. If the user has selected numeric data then numeric functions are applied to the data, however if the user has selected date-type data then date functions are applied to the data.

TECHNICAL FIELD

The present disclosure relates to an approach used to calculate numericvalues using textual data displayed on a Web browser.

BACKGROUND OF THE INVENTION

Web browsers are versatile software applications that are often used todisplay data from Web sites or other network sources, such as thosefound on the Internet. Examples of numeric data displayed as textualdata in a Web browser include sports scores, stock data, Internetbanking data and reports, and the like. Because the data displayed onthe Web page is textual, rather than numeric, a user has to copy andpaste the data into another application, such as a spreadsheet, in orderto perform numeric calculations on the data. This causes additional timeand effort on the part of the user and also requires use of a secondaryprogram in order to process the data.

SUMMARY

An approach is provided in which a user selection is received with theselection being a number data elements with each of the selected dataelements being displayed in a Web browser software application. A firstset of functions that apply to the selected data elements is identifiedand the identified first set of functions is applied to the selecteddata elements. The result is a set of resulting values which aredisplayed a window that appears on the display screen. If the user hasselected numeric data then numeric functions are applied to the data,however if the user has selected date-type data then date functions areapplied to the data.

In one embodiment, the user can configure the tool and select thefunctions that the user would like to have performed on the data. In afurther embodiment, after viewing the results, the user can re-configurethe tool in order to have different functions that process thealready-selected data elements. In another embodiment, the user canrequest to copy the results to one or more buffers. In this furtherembodiment, if two buffers are used, one buffer is used to store thefunction names while the second buffer is used to store the numericresults in a numeric format.

The foregoing is a summary and thus contains, by necessity,simplifications, generalizations, and omissions of detail; consequently,those skilled in the art will appreciate that the summary isillustrative only and is not intended to be in any way limiting. Otheraspects, inventive features, and advantages of the present invention, asdefined solely by the claims, will become apparent in the non-limitingdetailed description set forth below.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention may be better understood, and its numerousobjects, features, and advantages made apparent to those skilled in theart by referencing the accompanying drawings, wherein:

FIG. 1 is a block diagram of a data processing system in which themethods described herein can be implemented;

FIG. 2 provides an extension of the information handling systemenvironment shown in FIG. 1 to illustrate that the methods describedherein can be performed on a wide variety of information handlingsystems which operate in a networked environment;

FIG. 3 is a diagram showing a supplementary numeric analysis toolapplied against a selected set of data elements within a Web browsersoftware application;

FIG. 4 is a flowchart depicting steps taken in configuring the numericanalysis tool by a user;

FIG. 5 is a flowchart depicting steps taken in invoking the numericanalysis tool from the Web browser software application;

FIG. 6 is a flowchart depicting steps taken by the numeric analysis toolwhen invoked from the Web browser software application;

FIG. 7 is a flowchart depicting steps taken by the numeric analysis toolto process data selected by the user in the Web browser softwareapplication; and

FIG. 8 is a flowchart depicting steps taken in copying resulting data toone or more buffers so that the resulting data can be further processedby the user.

DETAILED DESCRIPTION

Certain specific details are set forth in the following description andfigures to provide a thorough understanding of various embodiments ofthe invention. Certain well-known details often associated withcomputing and software technology are not set forth in the followingdisclosure, however, to avoid unnecessarily obscuring the variousembodiments of the invention. Further, those of ordinary skill in therelevant art will understand that they can practice other embodiments ofthe invention without one or more of the details described below.Finally, while various methods are described with reference to steps andsequences in the following disclosure, the description as such is forproviding a clear implementation of embodiments of the invention, andthe steps and sequences of steps should not be taken as required topractice this invention. Instead, the following is intended to provide adetailed description of an example of the invention and should not betaken to be limiting of the invention itself. Rather, any number ofvariations may fall within the scope of the invention, which is definedby the claims that follow the description.

The following detailed description will generally follow the summary ofthe invention, as set forth above, further explaining and expanding thedefinitions of the various aspects and embodiments of the invention asnecessary. To this end, this detailed description first sets forth acomputing environment in FIG. 1 that is suitable to implement thesoftware and/or hardware techniques associated with the invention. Anetworked environment is illustrated in FIG. 2 as an extension of thebasic computing environment, to emphasize that modern computingtechniques can be performed across multiple discrete devices.

FIG. 1 illustrates information handling system 100, which is asimplified example of a computer system capable of performing thecomputing operations described herein. Information handling system 100includes one or more processors 110 coupled to processor interface bus112. Processor interface bus 112 connects processors 110 to Northbridge115, which is also known as the Memory Controller Hub (MCH). Northbridge115 connects to system memory 120 and provides a means for processor(s)110 to access the system memory. Graphics controller 125 also connectsto Northbridge 115. In one embodiment, PCI Express bus 118 connectsNorthbridge 115 to graphics controller 125. Graphics controller 125connects to display device 130, such as a computer monitor.

Northbridge 115 and Southbridge 135 connect to each other using bus 119.In one embodiment, the bus is a Direct Media Interface (DMI) bus thattransfers data at high speeds in each direction between Northbridge 115and Southbridge 135. In another embodiment, a Peripheral ComponentInterconnect (PCI) bus connects the Northbridge and the Southbridge.Southbridge 135, also known as the I/O Controller Hub (ICH) is a chipthat generally implements capabilities that operate at slower speedsthan the capabilities provided by the Northbridge. Southbridge 135typically provides various busses used to connect various components.These busses include, for example, PCI and PCI Express busses, an ISAbus, a System Management Bus (SMBus or SMB), and/or a Low Pin Count(LPC) bus. The LPC bus often connects low-bandwidth devices, such asboot ROM 196 and “legacy” I/O devices (using a “super I/O” chip). The“legacy” I/O devices (198) can include, for example, serial and parallelports, keyboard, mouse, and/or a floppy disk controller. The LPC busalso connects Southbridge 135 to Trusted Platform Module (TPM) 195.Other components often included in Southbridge 135 include a DirectMemory Access (DMA) controller, a Programmable Interrupt Controller(PIC), and a storage device controller, which connects Southbridge 135to nonvolatile storage device 185, such as a hard disk drive, using bus184.

ExpressCard 155 is a slot that connects hot-pluggable devices to theinformation handling system. ExpressCard 155 supports both PCI Expressand USB connectivity as it connects to Southbridge 135 using both theUniversal Serial Bus (USB) the PCI Express bus. Southbridge 135 includesUSB Controller 140 that provides USB connectivity to devices thatconnect to the USB. These devices include webcam (camera) 150, infrared(IR) receiver 148, keyboard and trackpad 144, and Bluetooth device 146,which provides for wireless personal area networks (PANs). USBController 140 also provides USB connectivity to other miscellaneous USBconnected devices 142, such as a mouse, removable nonvolatile storagedevice 145, modems, network cards, ISDN connectors, fax, printers, USBhubs, and many other types of USB connected devices. While removablenonvolatile storage device 145 is shown as a USB-connected device,removable nonvolatile storage device 145 could be connected using adifferent interface, such as a Firewire interface, etcetera.

Wireless Local Area Network (LAN) device 175 connects to Southbridge 135via the PCI or PCI Express bus 172. LAN device 175 typically implementsone of the IEEE .802.11 standards of over-the-air modulation techniquesthat all use the same protocol to wireless communicate betweeninformation handling system 100 and another computer system or device.Optical storage device 190 connects to Southbridge 135 using Serial ATA(SATA) bus 188. Serial ATA adapters and devices communicate over ahigh-speed serial link. The Serial ATA bus also connects Southbridge 135to other forms of storage devices, such as hard disk drives. Audiocircuitry 160, such as a sound card, connects to Southbridge 135 via bus158. Audio circuitry 160 also provides functionality such as audioline-in and optical digital audio in port 162, optical digital outputand headphone jack 164, internal speakers 166, and internal microphone168. Ethernet controller 170 connects to Southbridge 135 using a bus,such as the PCI or PCI Express bus. Ethernet controller 170 connectsinformation handling system 100 to a computer network, such as a LocalArea Network (LAN), the Internet, and other public and private computernetworks.

While FIG. 1 shows one information handling system, an informationhandling system may take many forms. For example, an informationhandling system may take the form of a desktop, server, portable,laptop, notebook, or other form factor computer or data processingsystem. In addition, an information handling system may take other formfactors such as a personal digital assistant (PDA), a gaming device, ATMmachine, a portable telephone device, a communication device or otherdevices that include a processor and memory.

The Trusted Platform Module (TPM 195) shown in FIG. 1 and describedherein to provide security functions is but one example of a hardwaresecurity module (HSM). Therefore, the TPM described and claimed hereinincludes any type of HSM including, but not limited to, hardwaresecurity devices that conform to the Trusted Computing Groups (TCG)standard, and entitled “Trusted Platform Module (TPM) SpecificationVersion 1.2.” The TPM is a hardware security subsystem that may beincorporated into any number of information handling systems, such asthose outlined in FIG. 2.

FIG. 2 provides an extension of the information handling systemenvironment shown in FIG. 1 to illustrate that the methods describedherein can be performed on a wide variety of information handlingsystems that operate in a networked environment. Types of informationhandling systems range from small handheld devices, such as handheldcomputer/mobile telephone 210 to large mainframe systems, such asmainframe computer 270. Examples of handheld computer 210 includepersonal digital assistants (PDAs), personal entertainment devices, suchas MP3 players, portable televisions, and compact disc players. Otherexamples of information handling systems include pen, or tablet,computer 220, laptop, or notebook, computer 230, workstation 240,personal computer system 250, and server 260. Other types of informationhandling systems that are not individually shown in FIG. 2 arerepresented by information handling system 280. As shown, the variousinformation handling systems can be networked together using computernetwork 200. Types of computer network that can be used to interconnectthe various information handling systems include Local Area Networks(LANs), Wireless Local Area Networks (WLANs), the Internet, the PublicSwitched Telephone Network (PSTN), other wireless networks, and anyother network topology that can be used to interconnect the informationhandling systems. Many of the information handling systems includenonvolatile data stores, such as hard drives and/or nonvolatile memory.Some of the information handling systems shown in FIG. 2 depictsseparate nonvolatile data stores (server 260 utilizes nonvolatile datastore 265, mainframe computer 270 utilizes nonvolatile data store 275,and information handling system 280 utilizes nonvolatile data store285). The nonvolatile data store can be a component that is external tothe various information handling systems or can be internal to one ofthe information handling systems. In addition, removable nonvolatilestorage device 145 can be shared among two or more information handlingsystems using various techniques, such as connecting the removablenonvolatile storage device 145 to a USB port or other connector of theinformation handling systems.

FIG. 3 is a diagram showing a supplementary numeric analysis toolapplied against a selected set of data elements within a Web browsersoftware application. Screen 300 depicts a page within a Web browsersoftware application that is displaying both textual (non-numeric) andnumeric data. In the example shown, textual data 310 is a column thatdisplays list of people's names (e.g., in a class, on a team, etc.) andeach of these names correspond with a data element in column 320 which,in the example, is a list of scores that each correspond with one of thedisplayed people. However, because the Web browser software applicationtreats all displayed data as textual data, the user is unable to performnumeric functions on the numeric data elements within the Web browserwithout additional functionality. This additional functionality isprovided by a software tool, such as a plug-in software component thatadds these numeric computational abilities to the Web browser softwareapplication. After the tool, such as the plug-in component, has beeninstalled, the user selects data upon which the functions (e.g., numericor date functions, etc.) are to be performed. Traditional selectionmethods are utilized by the user to select the data elements, such as byholding down a mouse button while scrolling the cursor (controlled withthe mouse) over the desired data. In the example shown in FIG. 3, theselected numeric data is column 320 which is shown as selected (e.g.,highlighted, etc.) as depicted by the dashed box outlining the data. Aswill be appreciated by those skilled in the art, several selectionmethodologies exist using various input devices such as the mouse, asdescribed above, the keyboard, a track-pad, etc. In addition, the dataelements selected do not have to be contiguous on the display screen asthe user can individually select the data elements using an alternativeselection mechanism (e.g., holding down the “control” key whileselecting items with the mouse, etc.). When discontiguously displayeddata elements are selected, each of the data elements will be visuallyhighlighted so that the user is aware of the selected data elements.Once the data elements are selected the software tool analyzes theselected data elements using various numeric or date functions,depending on whether the selected data elements consist of numeric itemsor date items. In one embodiment, the software tool is invoked using anicon, menu item, or key combination while, in another embodiment, thetool is invoked when the user is finished selecting data items in theWeb browser software application.

Screen 350 depicts the result of the software tool operating on selecteddata elements 325. When the tool operates, window 360 is displayed withthe results of one or more functions that used the selected dataelements as input. In the example shown, the functions included theaverage (mean), count, maximum value, minimum value, and sum (summation)of the selected data elements. Window 360 includes various options thatthe user can select using command buttons 370, 375, and 380. Commandbutton 370 is labeled “Configure” and is selected by the user if theuser wishes to configure the tool (e.g., to select different functions,etc.). The flowchart depicting the steps taken to configure the tool isshown in FIG. 4. Command button 375 is labeled “Copy” and is used by theuser to copy the results to one or more buffer areas. The flowchartdepicting the steps taken to copy the results to one or more bufferareas is shown in FIG. 8. Command button 380 is labeled “Close” and isused by the user to close window 360.

FIG. 4 is a flowchart depicting steps taken in configuring the numericanalysis tool by a user. Processing commences at 400 whereupon, adecision is made by the user as to whether the numeric analysis tool hasbeen installed in the Web browser software application that is executingon the user's computer system (decision 405). If the user has not yetinstalled the numeric analysis tool, then decision 405 branches to the“no” branch whereupon, at step 410, the user installs the numericanalysis tool to their Web browser software application (e.g., as anplug-in component, etc.) using the plug-in installer functionality ofthe particular Web browser software application. On the other hand, ifthe user has already installed the numeric analysis tool, then decision405 branches to the “yes” branch bypassing step 410. In addition, in oneembodiment, the numeric analysis tool is included in the Web browsertool by the Web browser software application provider so that the toolis available to users when the Web browser software application isinstalled by the user.

At step 420, the user selects the first function that the user desiresto use to analyze numeric or date information. Examples of numericfunctions include sum, average, count, min, max, abs, floor, etc. whileexamples of date functions include days (number of days between twodates), dow (day of week), etc. In one embodiment, the user selects thefunction from a list of available functions (data store 430) that areincluded with the numeric analysis tool. At step 440, the function thatwas selected by the user in step 420 is saved to user-selected functionsdata store 450. A decision is made as to whether the user wishes toselect additional functions (decision 460). If the user wishes to selectadditional functions, then decision 460 branches to the “yes” branchwhich loops back to step 420 so that the user can select anothernumeric/date function to include in the analysis performed by the tool.This looping continues until the user does not wish to select anyadditional numeric/date functions at which time decision 460 branches tothe “no” branch whereupon the user utilizes the numeric analysis toolfrom the Web browser software application executing on the user'scomputer system (predefined process 470, see FIG. 5 and correspondingtext for processing details). Processing thereafter ends at 495.

FIG. 5 is a flowchart depicting steps taken in invoking the numericanalysis tool from the Web browser software application. Web browsersoftware application processing commences at 500 whereupon, at step 510,user input is received at the Web browser (e.g., mouse clicks, menuselections, toolbar icon selections, etc.). A decision is made as towhether the user has selected data elements that are being displayed bythe Web browser (decision 520). If the user has selected data elements,then decision 520 branches to the “yes” branch whereupon a decision ismade as to whether the user has selected numeric data elements or datedata elements (decision 530). If the user has selected numeric dataelements or date data elements, then decision 530 branches to the “yes”branch whereupon, at predefined process 540, the numeric/date analysistool is invoked (see FIG. 6 and corresponding text for processingdetails). As previously described, the numeric/date analysis tool can beincorporated in the Web browser software application as a separatelyinstalled component (e.g., a plug-in component, etc.) or as a built-inpart of the Web browser software application. After the numeric/dateanalysis tool has completed, processing loops back to receive the nextuser input.

On the other hand, if the user either did not select data on the displayscreen (in which case decision 520 branches to the “no” branch) or ifthe data selected by the user is not numeric or date data (in which casedecision 530 branches to the “no” branch), then a decision is made as towhether the user has requested to exit the Web browser softwareapplication (decision 550), e.g., by closing the application, etc. Ifthe user did not request to exit the Web browser software application,then decision 550 branches to the “no” branch whereupon, at step 560,the user's input is processed and processing loops back to step 510 inorder to receive and process the next user input. This looping continuesuntil the user decides to exit the Web browser software application, atwhich point decision 550 branches to the “yes” branch and the Webbrowser software application ends at 595.

FIG. 6 is a flowchart depicting steps taken by the numeric analysis toolwhen invoked from the Web browser software application. Numeric/datesoftware component processing commences at 600 having been called by theWeb browser software application being used by the user. As previouslydescribed, this numeric/date analysis component can be integrated intothe Web browser software application or can be installed as a separate“plug-in” component to provide this additional functionality to the Webbrowser. The numeric/date analysis component is called after the userhas selected data elements that are being displayed by the Web browser.

At step 610 the numeric/date analysis tool selects the first dataelement selected by the user. At step 620, the selected data element isconverted to the proper data type. In FIG. 5 it was determined whetherthe data selected by the user was numeric data or date-type data. If thedata selected by the user is numeric data, then at step 620 the selecteddata element is converted to a numeric data type (e.g., floating point,integer, etc.). However, if the data selected by the user is date-typedata, then at step 620 the selected data element is converted to a datetype (e.g., serial date, serial date-time, etc.). As previouslydiscussed, the data elements displayed by the Web browser softwareapplication are stored in a textual format making numeric and/or datecomputations difficult. Therefore, in one embodiment, the date isconverted to the proper type before being processed by the applicablefunctions. At step 625, the converted data element is stored in memoryarea 630 for future processing. A decision is made as to whether thereare more data elements that were selected by the user (decision 640). Ifthere are additional data elements selected by the user, then decision640 branches to the “yes” branch which loops back to select and processthe next data element as described above. This looping continues untilall of the date elements selected by the user have been converted intothe proper format and the converted data has been stored in memory area630. When all of the selected data elements have been processed, thendecision 640 branches to the “no” branch for further processing. Inaddition, as previously described, the date elements selected by theuser do not have to be displayed contiguously on the display screen asthe user may have used an alternate selection technique (e.g., holdingthe “control” key down while individually selecting data elements withthe mouse, etc.).

At predefined process 650 the converted data elements are processed bythe various functions (e.g., numeric functions for numeric data, datefunctions for date-type data, etc.). FIG. 7 and corresponding text belowprovide details regarding the processing of the converted data using thevarious functions. Data resulting from predefined process 650 is storedin output buffer 750. Output buffer 750 is retrieved at step 660 todisplay the analysis results (e.g., results of the various functions,etc., see FIG. 3, window 360, and corresponding text for an example ofthe displayed analysis).

A decision is made as to whether the user has requested to copy theresult data (decision 665, e.g., by the user selecting “copy” commandbutton 375 provided in window 360 shown in FIG. 3). If the user hasrequested to copy the results, then decision 665 branches to the “yes”branch whereupon, at predefined process 670, the results are copied toone or more buffers as chosen by the user (see FIG. 8 and correspondingtext for processing details), after which processing loops back todisplay the analysis results at step 660.

If the user has not requested to copy the result data, then decision 665branches to the “no” branch whereupon a decision is made as to whetherthe user has requested to either configure the numerical/data analysistool (decision 675, e.g., determined by the user selecting “configure”command button 370 provided in window 360 shown in FIG. 3 or by the userselecting “close” command button 380 provided in window 360 also shownin FIG. 3). If the user has selected to configure the numerical/dataanalysis tool, then decision 675 branches to the “configure” branchwhereupon, at step 680, the analysis window (e.g., window 360 shown inFIG. 3) is removed from the display and at predefined process 685 theuser is allowed to select (change) the functions that are used toprocess the selected data elements (see FIG. 4 and corresponding textfor processing details). Processing then loops back to predefinedprocess 650 that processes the user selected data elements, now usingthe newly selected functions chosen by the user in predefined process685. The looping shown continues until the user selects to exit thedisplay of the analysis results, at which point decision 675 branches tothe “exit” branch whereupon, at step 690, the analysis window (e.g.,window 360 shown in FIG. 3) is removed from the Web browser softwareapplication display and processing returns to the calling routine (seeFIG. 5) at 695.

FIG. 7 is a flowchart depicting steps taken by the numeric analysis toolto process data selected by the user in the Web browser softwareapplication. Processing commences at 700 whereupon, at step 705, theprocess checks the data type of the data that is being processed that isstored in converted data memory area 630. A decision is made as towhether the data that is being processed is date-type data (decision710). If the data is date-type data, then decision 710 branches to the“yes” branch whereupon, at step 715 the first date-type function (e.g.,days, dow, etc.) is selected from user selected functions data store450. At step 720, the converted data stored in memory area 630 (all dataelements) are processed by the selected date function with theprocessing resulting in a result (e.g., a numeric value). At step 725, anumeric function result is converted to a textual format for eventualdisplay on the Web browser software application. At step 730, thetextual function name (e.g., “Days”, etc.) is output to output buffer750 along with the textual value of the function result (e.g., “325”,etc.). A decision is made as to whether there are additional datefunctions that the user has selected that still need to be processed(decision 735). If there are additional date functions to process, thendecision 735 branches to the “yes” branch which loops back to step 715to select the next date function from data store 450 and process it asdescribed above. This looping continues until there are no more datefunctions to process, at which point decision 735 branches to the “no”branch whereupon processing returns to the calling routine (see FIG. 6)at 795.

Returning to decision 710, if the data is numeric-type data, thendecision 710 branches to the “no” branch whereupon, at step 755 thefirst numeric function (e.g., sum, average, etc.) is selected from userselected functions data store 450. At step 760, the converted datastored in memory area 630 (all data elements) are processed by theselected date function with the processing resulting in a result (e.g.,a numeric value). At step 765, a numeric function result is converted toa textual format for eventual display on the Web browser softwareapplication. At step 770, the textual function name (e.g., “Sum”,“Average”, etc.) is output to output buffer 750 along with the textualvalue of the function result (e.g., “545”, “90.8”, etc.). A decision ismade as to whether there are additional numeric functions that the userhas selected that still need to be processed (decision 775). If thereare additional date functions to process, then decision 775 branches tothe “yes” branch which loops back to step 755 to select the next numericfunction from data store 450 and process it as described above. Thislooping continues until there are no more numeric functions to process,at which point decision 775 branches to the “no” branch whereuponprocessing returns to the calling routine (see FIG. 6) at 795.

FIG. 8 is a flowchart depicting steps taken in copying resulting data toone or more buffers so that the resulting data can be further processedby the user. Processing commences at 800 whereupon, at step 810, theuser is prompted as to whether the user wishes to copy the analysisfunction names and results to a single buffer as text-formatted data orwhether the user wishes to copy the analysis function names to a firstbuffer as text-formatted data and copy the analysis function values to asecond buffer as numeric-formatted data. A decision is made as towhether the user has selected to copy both the analysis names andfunction result values to a single buffer in text-format (decision 815).If the user has selected to copy both the analysis names and functionresult values to a single buffer, then decision 815 branches to the“yes” branch whereupon, at step 820, single buffer area 825 is allocatedto store the result data (e.g., the system clipboard, a buffer memory,etc.). On the other hand, if the user has requested to copy the analysisfunction names to a first buffer as text-formatted data and copy theanalysis function values to a second buffer as numeric-formatted data,then decision 815 branches to the “no” branch whereupon, at step 830,two buffer areas 835 and 840 are allocated with buffer area 835 used tostore the analysis function names (e.g., “Sum”, “Average”, etc.) andbuffer area 840 used to store the analysis function values innumeric-formatted type (e.g., 545, 90.8, etc.).

At step 850, the first analysis result is selected from analysis displaywindow 360. A decision is made as to whether a single buffer is beingused to store the copied results (decision 860). If a single buffer isbeing used, then decision 860 branches to the “yes” branch whereupon, atstep 865, the textual function name is written to buffer 825 along withthe textual version of the function result value (e.g., “Sum 545”,etc.). On the other hand, if two buffers are being used to store thecopied results, then decision 860 branches to the “no” branch whereupon,at step 870, the textual function names are written to first buffer area835 (e.g., “Sum”, etc.) and, at step 875, the numeric function resultvalues are written to second buffer area 840 (e.g., 545, etc.).

A decision is made as to whether there are more analysis functionresults to process and write to the buffer(s) (decision 880). If thereare more analysis function results to process and write to the buffers,then decision 880 branches to the “yes” branch which loops back toselect and process the next analysis function result displayed in theanalysis results window (e.g., window 360 shown in FIG. 3). This loopingcontinues until all of the results have been processed, at which pointdecision 880 branches to the “no” branch whereupon, at step 890 thebuffer (or buffers) used to store the analysis results are closed andprovided to the user for further use and analysis. Processing thereafterreturns to the calling routine (FIG. 6) at 895.

One of the preferred implementations of the invention is a clientapplication, namely, a set of instructions (program code) or otherfunctional descriptive material in a code module that may, for example,be resident in the random access memory of the computer. Until requiredby the computer, the set of instructions may be stored in anothercomputer memory, for example, in a hard disk drive, or in a removablememory such as an optical disk (for eventual use in a CD ROM) or floppydisk (for eventual use in a floppy disk drive). Thus, the presentinvention may be implemented as a computer program product for use in acomputer. In addition, although the various methods described areconveniently implemented in a general purpose computer selectivelyactivated or reconfigured by software, one of ordinary skill in the artwould also recognize that such methods may be carried out in hardware,in firmware, or in more specialized apparatus constructed to perform therequired method steps. Functional descriptive material is informationthat imparts functionality to a machine. Functional descriptive materialincludes, but is not limited to, computer programs, instructions, rules,facts, definitions of computable functions, objects, and datastructures.

While particular embodiments of the present invention have been shownand described, it will be obvious to those skilled in the art that,based upon the teachings herein, that changes and modifications may bemade without departing from this invention and its broader aspects.Therefore, the appended claims are to encompass within their scope allsuch changes and modifications as are within the true spirit and scopeof this invention. Furthermore, it is to be understood that theinvention is solely defined by the appended claims. It will beunderstood by those with skill in the art that if a specific number ofan introduced claim element is intended, such intent will be explicitlyrecited in the claim, and in the absence of such recitation no suchlimitation is present. For non-limiting example, as an aid tounderstanding, the following appended claims contain usage of theintroductory phrases “at least one” and “one or more” to introduce claimelements. However, the use of such phrases should not be construed toimply that the introduction of a claim element by the indefinitearticles “a” or “an” limits any particular claim containing suchintroduced claim element to inventions containing only one such element,even when the same claim includes the introductory phrases “one or more”or “at least one” and indefinite articles such as “a” or “an”; the sameholds true for the use in the claims of definite articles.

1. (canceled)
 2. (canceled)
 3. (canceled)
 4. (canceled)
 5. (canceled) 6.(canceled)
 7. (canceled)
 8. (canceled)
 9. (canceled)
 10. (canceled) 11.An information handling system comprising: one or more processors; amemory coupled to at least one of the processors; a set of instructionsstored in the memory and executed by at least one of the processors inorder to perform actions of: receiving a user selection of a pluralityof data elements, wherein each of the selected data elements isdisplayed in a Web browser software application that is displayed on adisplay screen; identifying a first set of one or more functions thatapply to the selected plurality of data elements; applying theidentified first set of functions to the selected plurality of dataelements, resulting in a first set of one or more resulting values; anddisplaying the first set of resulting values in a window that appears onthe display screen.
 12. The information handling system of claim 11wherein the set of instructions performs additional actions comprising:determining that each of the selected plurality of data elements is anumeric value, wherein each of the identified functions are numericanalysis functions.
 13. The information handling system of claim 12wherein the set of instructions performs additional actions comprising:converting each of the plurality of selected data elements from atextual data type to a numeric data type; and storing each of theconverted data elements in a memory area, wherein the application of thenumeric analysis functions reads the stored converted data elements fromthe memory area.
 14. The information handling system of claim 11 whereinthe set of instructions performs additional actions comprising:determining that each of the selected plurality of data elements is adate value, wherein each of the identified functions are date analysisfunctions.
 15. The information handling system of claim 14 wherein theset of instructions performs additional actions comprising: convertingeach of the plurality of selected data elements from a textual data typeto a date data type; and storing each of the converted data elements ina memory area, wherein the application of the date analysis functionsreads the stored converted data elements from the memory area.
 16. Theinformation handling system of claim 11 wherein the selected pluralityof data elements are displayed discontiguously on the display screen.17. The information handling system of claim 11 wherein the set ofinstructions performs additional actions comprising: configuring asoftware tool that performs the identifying, applying, and displayingsteps, wherein the configuring comprises: selecting a plurality offunctions from a set of available functions; and saving the selectedplurality of functions as user-selected functions.
 18. The informationhandling system of claim 17 wherein the configuring is performed inresponse to a user request that was received at the window thatdisplayed the resulting values, and wherein the set of instructionsperforms additional actions comprising: identifying a second set of oneor more functions that apply to the selected plurality of data elements,wherein the second set of functions include at least one of theuser-selected functions saved during the configuring; applying theidentified second set of functions to the selected plurality of dataelements resulting in a second set of one or more resulting values; anddisplaying the second set of resulting values in the window that appearson the display screen.
 19. The information handling system of claim 17wherein the configuring is performed prior to receiving the userselection of the plurality of data elements, and wherein the identifiedfirst set of functions are selected from the saved user-selectedfunctions.
 20. The information handling system of claim 11, wherein thedisplaying of the first set of resulting values includes displaying afunction name corresponding to each of the resulting values adjacent tothe respective resulting values, and wherein the set of instructionsperforms additional actions comprising: after the displaying of thefirst set of resulting values, receiving a copy request at the windowthat appears on the display screen; copying the first set of resultingvalues to a memory area, the copying further comprising: receiving anoutput data type selection; in response to the output data typeselection being a text data type: copying the displayed function namesand resulting values to a first output buffer, wherein the functionnames and the resulting values are stored in the text data type; inresponse to the output data type selection being a numeric data type:copying the displayed function names to the first output buffer, whereinthe function names are stored in the text data type; copying theresulting values in a second output buffer, wherein the resulting valuesare stored in the numeric data type.
 21. A computer program productstored in a computer readable medium, comprising functional descriptivematerial that, when executed by an information handling system, causesthe information handling system to perform actions that include:receiving a user selection of a plurality of data elements, wherein eachof the selected data elements is displayed in a Web browser softwareapplication that is displayed on a display screen; identifying a firstset of one or more functions that apply to the selected plurality ofdata elements; applying the identified first set of functions to theselected plurality of data elements, resulting in a first set of one ormore resulting values; and displaying the first set of resulting valuesin a window that appears on the display screen.
 22. The computer programproduct of claim 21 wherein the actions further comprise: determiningthat each of the selected plurality of data elements is a numeric value,wherein each of the identified functions are numeric analysis functions.23. The computer program product of claim 22 wherein the actions furthercomprise: converting each of the plurality of selected data elementsfrom a textual data type to a numeric data type; and storing each of theconverted data elements in a memory area, wherein the application of thenumeric analysis functions reads the stored converted data elements fromthe memory area.
 24. The computer program product of claim 21 whereinthe actions further comprise: determining that each of the selectedplurality of data elements is a date value, wherein each of theidentified functions are date analysis functions.
 25. The computerprogram product of claim 24 wherein the actions further comprise:converting each of the plurality of selected data elements from atextual data type to a date data type; and storing each of the converteddata elements in a memory area, wherein the application of the dateanalysis functions reads the stored converted data elements from thememory area.
 26. The computer program product of claim 21 wherein theselected plurality of data elements are displayed discontiguously on thedisplay screen.
 27. The computer program product of claim 21 wherein theactions further comprise: configuring a software tool that performs theidentifying, applying, and displaying steps, wherein the configuringcomprises: selecting a plurality of functions from a set of availablefunctions; and saving the selected plurality of functions asuser-selected functions.
 28. The computer program product of claim 27wherein the configuring is performed in response to a user request thatwas received at the window that displayed the resulting values, andwherein the actions further comprise: identifying a second set of one ormore functions that apply to the selected plurality of data elements,wherein the second set of functions include at least one of theuser-selected functions saved during the configuring; applying theidentified second set of functions to the selected plurality of dataelements resulting in a second set of one or more resulting values; anddisplaying the second set of resulting values in the window that appearson the display screen.
 29. The computer program product of claim 27wherein the configuring is performed prior to receiving the userselection of the plurality of data elements, and wherein the identifiedfirst set of functions are selected from the saved user-selectedfunctions.
 30. The computer program product of claim 21, wherein thedisplaying of the first set of resulting values includes displaying afunction name corresponding to each of the resulting values adjacent tothe respective resulting values, and wherein the actions furthercomprise: after the displaying of the first set of resulting values,receiving a copy request at the window that appears on the displayscreen; copying the first set of resulting values to a memory area, thecopying further comprising: receiving an output data type selection; inresponse to the output data type selection being a text data type:copying the displayed function names and resulting values to a firstoutput buffer, wherein the function names and the resulting values arestored in the text data type; in response to the output data typeselection being a numeric data type: copying the displayed functionnames to the first output buffer, wherein the function names are storedin the text data type; copying the resulting values in a second outputbuffer, wherein the resulting values are stored in the numeric datatype.